Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO ■NESA-FO BIOS INT 1Fh - Function C0h 分類 NESA-FO BIOS 名前 対象スロット番号の取得(1) 対象 PC-H98 入力 AH=C0h AL=製品コード(00〜FFh) 出力 AX=スロット番号表 bit 15:論理スロット番号15 bit 14:論理スロット番号14 : bit 0:論理スロット番号 0 * 対応するスロット番号のビットが1になる 解説 o 指定された製品コードを持つ拡張ボードが実装されているスロット番号を 返す。同じ拡張ボードが複数実装されている場合は、複数のビットが1に なる。 関連 表 物理スロット番号とスロット名の対応 ----------------+------------------------------ 物理スロット番号|スロット名 ----------------+------------------------------ 00h |欠番 01h |拡張スロット#1 02h |拡張スロット#2 03h |拡張スロット#3 04h |拡張スロット#4 05h |リザーブ 06h |HDC専用スロット 07h |CRTC専用スロット 08〜0Eh |リザーブ 0Fh |I/O拡張ユニット(Undocumented) ----------------+------------------------------ 表 製品コードと製品名の対応例(Undocumented) ----------+-----------------------------+---------- 製品コード|製品名 |機能ID(4) ----------+-----------------------------+---------- 02h |PC-H98/70-E02(ESDI 100MB HDD)|06h 03h |PC-H98S/8-E02(SCSI 100MB HDD)|16h 04h |PC-H98-B02(2MBメモリボード) |06h ----------+-----------------------------+---------- INT 1Fh - Function C1h 分類 NESA-FO BIOS 名前 対象スロット番号の取得(2) 対象 PC-H98 入力 AH=C1h AL=拡張ROMのセグメントアドレス(上位8ビット) 出力 AH=不定 ■該当する拡張ボードが見つかったとき AL=論理スロット番号(00〜0Fh) ■該当する拡張ボードが見つからなかったとき AL=FFh 解説 o 指定されたアドレスに配置されている拡張ROMを持つ拡張ボードが 実装されているスロット番号を返す。 EMM386.EXEがフックする。 関連 INT 1Fh - Function C2h 分類 NESA-FO BIOS 名前 機能IDの取得 対象 PC-H98 入力 AH=C2h AL=論理スロット番号(00〜0Fh) 出力 DX=機能ID(1,2) : ボードメーカコード AH=機能ID(3) : 製品コード AL=機能ID(4) bit 7〜4:Compatibleコード bit 3,2 :ボード区分 bit 1,0 :NESA-FOタイプ <<ボードメーカーコード>> ボードメーカーコードとは、3文字のアルファベットを以下のように 2バイトに格納したもの。 bit 15 : 常に0 bit 14〜10: 1文字目のコード bit 9〜 5: 2文字目のコード bit 4〜 0: 3文字目のコード 各文字のコードと文字の対応は以下のとおり。 00000b = 使用しない 00001b = 'A' 00010b = 'B' : 11010b = 'Z' 11011b = 一般のお客様利用ボードメーカコード 11100b = 使用しない : 11111b = 使用しない "NEC"の場合は、38A3hになる。 解説 o 指定されたスロットに実装されている拡張ボードの機能IDを返す。 関連 INT 1Fh - Function C3h 分類 NESA-FO BIOS 名前 NESA-FOレジスタ設定値の取得 対象 PC-H98 入力 AH=C3h AL=スロット論理番号(00〜0Fh) DL=NESA-FOレジスタ番号(00〜0Fh) 出力 DL=NESA-FOレジスタ設定値 DH=不定 解説 o 指定されたスロットに実装されている拡張ボードのNESA-FOレジスタの設定値を 読み出す。 関連 INT 1Fh - Function C4h 分類 NESA-FO BIOS 名前 NESA-FO割り付け設定情報の取得 対象 PC-H98 入力 AH=C4h AL=論理スロット番号(00〜0Fh) DL bit 7〜4=割り付け項目(1〜4) DL bit 3〜0=割り付け情報#0〜#3(0〜3) 出力 (1)割り付け項目(入力のDL bit 7〜4)=1のとき DL=割り込みチャネル情報 bit 7:フラグ 1=割り込み使用する 0=割り込み使用しない bit 6,5:モード 11b=シェアリング可/レベルモード 10b=未使用 01b=シェアリング不可/レベルモード 00b=シェアリング不可/エッジモード bit 3〜0:割り込みレベル(IR値) 1101b=INT6 1100b=INT5 1010b=INT4 1001b=INT3 0110b=INT2 0101b=INT1 0011b=INT0 (2)割り付け項目(入力のDL bit 7〜4)=2のとき DL=DMAチャネル情報 bit 7:DMAの使用状況 1=DMA使用する 0=DMA使用しない bit 6:モード 1=シェアリング可 0=シェアリング不可 bit 2〜0:DMAチャネル番号(0〜6) (3)割り付け項目(入力のDL bit 7〜4)=3のとき AL=I/Oアドレス情報 bit 7,6:領域割り付け 10b=偶数割り付け 01b=奇数割り付け 00b=連続割り付け bit 5〜0:領域サイズ(I/Oアドレスポート数) DX=bit 15〜0=I/O開始アドレス (4)割り付け項目(入力のDL bit 7〜4)=4のとき AL=メモリ領域開始アドレス(256バイト単位)上位8ビット DX=メモリ領域開始アドレス(256バイト単位)下位16ビット BX=メモリ領域サイズ(4Kバイト単位) 解説 o 指定されたスロットに実装されている拡張ボードのNESA-FO割り付け設定 情報を読み出す。 o 入力のDL bit 3〜0にセットする割り付け情報とは、1枚のボード上に 複数の資源を持つ場合に、資源の区別をするために使用する。 o EMM386.EXEがフックする 関連 INT 1Fh - Function C5h 分類 NESA-FO BIOS 名前 マウス割り込みレベルの取得 対象 PC-H98 入力 AH=C5h 出力 AL=割り込みチャネル情報 * INT 1Fh - Function C4hの割り込みチャネル情報と同じ形式 解説 o マウス割り込みに関する設定を読み出す。 関連 INT 1Fh - Function C6h 分類 NESA-FO BIOS 名前 機能なし Undocumented 対象 PC-H98 入力 AH=C6h 出力 なし 解説 o なし 関連 INT 1Fh - Function C7h 分類 NESA-FO BIOS 名前 不明 Undocumented 対象 PC-H98 入力 AH=C7h AL=サブファンクション番号 DX=不明 出力 解説 o NESAバス制御関係。詳細不明。CHGEV.EXEで使用。 関連 INT 1Fh - Function C8〜CFh 分類 名前 機能なし Undocumented 対象 PC-H98 入力 AH=C8〜CFh 出力 なし 解説 o なし 関連 ■PCMCIA SSDRV.SYS INT 1Fh - Function CFh Subfunction 00h 分類 PCMCIA Socket Service 名前 機能なし Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=00h 出力 AH=15h(CF=1): 無効機能 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 01h 分類 PCMCIA Socket Service 名前 不明 Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=01h BH=アダプタ番号(通常00hを指定する) BL=ソケット(通常01hを指定する) 出力 AH=00h(CF=0): 正常終了 CH=? CL=? DX=? AH=01h(CF=1): アダプタの指定が不正 AH=0Bh(CF=1): ソケットの指定が不正 AH=14h(CF=1): カードが挿入されていない 解説 o INT 1Fh - Function CFh Subfunction 02hで設定したCH,CL,DXの値を 取得する。 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 02h INT 1Fh - Function CFh Subfunction 02h 分類 PCMCIA Socket Service 名前 不明 Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=02h BH=アダプタ番号(通常00hを指定する) BL=ソケット(通常01hを指定する) CH=不明(レンジ?) ■CH bit 6=1のとき CL=? DX=? ■CH bit 6〜4=0x1bのとき CL=00〜1Fh DX=0000〜01FFh ■CH bit 6〜4=0x0bのとき CL=? DX=0000〜0FFFh 出力 AH=00h(CF=0): 正常終了 CH=? CL=? DX=? AH=01h(CF=1): アダプタの指定が不正 AH=0Bh(CF=1): ソケットの指定が不正 AH=14h(CF=1): カードが挿入されていない AH=FEh(CF=1): DXレジスタの値が不正 AH=FFh(CF=1): CLレジスタの値が不正 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 01h INT 1Fh - Function CFh Subfunction 03h 分類 PCMCIA Socket Service 名前 不明 Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=03h BH=アダプタ番号(通常00hを指定する) CH=機能指定 ■CH=00h CL=アドレスナンバー * 指定したナンバーのアドレス登録を取り消す ■CH=01h ES:DI=登録アドレス DX=? * 登録するアドレスナンバーは通常#7。ただし、DX=4143hのときだけ#0 出力 AH=00h(CF=0): 正常終了 AH=01h(CF=1): アダプタの指定が不正 AH=15h(CF=1): 無効機能 AH=16h(CF=1): モード不正 AH=FCh(CF=1): CLレジスタの値が不正 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 04h 分類 PCMCIA Socket Service 名前 機能なし Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=04h 出力 AH=15h(CF=1): 無効機能 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 05h 分類 PCMCIA Socket Service 名前 不明 Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=05h BH=アダプタ番号(通常00hを指定する) BL=転送内容指定1(01〜08h) CL=転送内容指定2(00〜01h) 00h: 408バイト転送 01h: 38バイト転送 ES:DI=転送アドレス ■CL=01hのときのデータフォーマット ----------+------------------------------------------------------------ オフセット|内容 ----------+------------------------------------------------------------ +00h(WORD)|拡張スロット使用フラグ |0001h: 使用する |FFFFh: 使用しない +02h(BYTE)|拡張スロットで使用する割り込み登録 |bit 6〜0: INT6〜INT0使用フラグ | 1=使用する | 0=使用しない |* 使用する割り込みに対応するビットを1にする。2つまで指定可 +03h(BYTE)|常に00h(未使用) +04h(WORD)|拡張スロットで使用するI/O空間登録数(0000〜0004h) |I/O空間を使用しないときは0000h +06h(WORD)|拡張スロット・領域#0のアドレス下限 +08h(WORD)|拡張スロット・領域#0のアドレス上限 +0Ah(WORD)|拡張スロット・領域#1のアドレス下限 +0Ch(WORD)|拡張スロット・領域#1のアドレス上限 +0Eh(WORD)|拡張スロット・領域#2のアドレス下限 +10h(WORD)|拡張スロット・領域#2のアドレス上限 +12h(WORD)|拡張スロット・領域#3のアドレス下限 +14h(WORD)|拡張スロット・領域#3のアドレス上限 +16h |未使用 : | +25h | ----------+------------------------------------------------------------ 出力 AH=00h(CF=0): 正常終了 AH=01h(CF=1): アダプタの指定が不正 AH=FDh(CF=1): BLレジスタの値が不正 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する。 u CL=01hのときのデータフォーマットは、CARDSET.DATと同じ。CARDSET.DAT には、このフォーマットで拡張スロット#1〜#3のデータが格納されている。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 06h INT 1Fh - Function CFh Subfunction 06h 分類 PCMCIA Socket Service 名前 不明 Undocumented 対象 PCカードスロット搭載機 + SSDRV.SYS 入力 AH=CFh AL=06h BH=アダプタ番号(通常00hを指定する) BL=転送内容指定1(01〜08h) CL=転送内容指定2(00〜01h) 00h: 408バイト転送 01h: 38バイト転送 ES:DI=転送アドレス * CL=01hのときのデータフォーマットはINT 1Fh - Function CFh Subfunction 05h参照 出力 AH=00h(CF=0): 正常終了 AH=01h(CF=1): アダプタの指定が不正 AH=FDh(CF=1): BLレジスタの値が不正 解説 o このファンクションは、PCMCIAソケットサービス(SSDRV.SYS)が提供する u CL=01hのときのデータフォーマットは、CARDSET.DATと同じ。CARDSET.DAT には、このフォーマットで拡張スロット#1〜#3のデータが格納されている。 u NECのPCMCIA Socket Service 2.00 Driver Rev 1.00では、この ファンクションを実行するとZR,PE,OVフラグが破壊される。 関連 INT 1Fh - Function CFh Subfunction 05h ■H98 DMA BIOS INT 1Fh - Function D0h 分類 DMA BIOS 名前 DMACリセット Undocumented 対象 PC-H98 入力 AH=D0h 出力 AH=00h,CF=0: 正常終了 解説 o DMACに対してマスタクリアを行う。DMACはリセットされる。 関連 I/O 001Bh INT 1Fh - Function D1h 分類 DMA BIOS 名前 機能なし Undocumented 対象 PC-H98 入力 AH=D1h 出力 AH=00h,CF=0 解説 o なし 関連 INT 1Fh - Function D2h 分類 DMA BIOS 名前 チャネルアロケート 対象 PC-H98 入力 AH=D2h AL=DMAチャネル番号(0〜6) 出力 AH=00h,CF=0: 正常終了 40h,CF=1: 指定したDMAチャネルが使用されている 解説 o DMACのチャネル使用権の割り当てを行う。 関連 0000:0591h INT 1Fh - Function D3h 分類 DMA BIOS 名前 DMAチャネル初期設定 対象 PC-H98 入力 AH=D3h AL=DMAチャネル番号(0〜6) BH=BLレジスタで設定する内容 00h: バスサイズ・転送モードの設定 01h: DMA境界の設定 02h: 不明(Undocumented) (1)BH=00hのとき BL bit 7〜4: バスサイズ 1111b = 8ビット 1010b = 16ビット 0101b = 32ビット * これ以外は設定禁止 BL bit 3,2: タイプ 11b = リザーブ 10b = タイプB 01b = タイプA 00b = 互換サイクル bit 1,0 : 00bを設定 (2)BH=01hのとき BL bit 7〜4:0000bを設定 BL bit 3,2:DMA境界 11=16Mバイト 10=予約 01=1Mバイト 00=64Kバイト bit 1,0:00bを設定 (2)BH=02hのとき(Undocumented) bit 7〜2:不明 bit 1,0:00bを設定 出力 AH=00h,CF=0: 正常終了 20h,CF=1: 無効なパラメータが指定された 40h,CF=1: 指定したDMAチャネルは使用されている 解説 o DMAチャネルごとのDMAバス幅、DMAアドレス境界を設定する。 関連 INT 1Fh - Function D4h 分類 DMA BIOS 名前 機能なし Undocumented 対象 PC-H98 入力 AH=D4h 出力 AH=00h,CF=0 解説 o なし 関連 INT 1Fh - Function D5h 分類 DMA BIOS 名前 DMAパラメータセット 対象 PC-H98 入力 AH=D5h AL bit 7:TARGET ADDRESS UP/DOWN 1=TARGET DOWN 0=TARGET UP bit 6:AUTO INITIALIZE MODE 1=AUTO INITIALIZE 0=NO OPERATION bit 5,4:DMA MODE 11b=設定禁止 10b=読み出し(メモリからI/O) 01b=書き込み(I/Oからメモリ) 00b=ベリファイ(I/O読み出し) bit 3:0を設定 bit 2〜0:DMAチャネル番号(0〜6) ES:BX=パラメータテーブルの先頭アドレス <パラメータテーブルの形式> ---------------+----------------------------------- アドレス |内容 ---------------+----------------------------------- ES:BX+00h(WORD)|DMA COUNT(L) ES:BX+02h(WORD)|DMA COUNT(H) (上位1バイトは00hを設定) ES:BX+04h(WORD)|DMA ADDRESS(L) ES:BX+06h(WORD)|DMA ADDRESS(H) ---------------+----------------------------------- 出力 AH=00h,CF=0: 正常終了 20h,CF=1: 無効なパラメータが指定された 解説 o DMACに指定されたチャネルの各種パラメータを設定し、シングルマスク レジスタのマスクを解除する。 関連 0000:0591h INT 1Fh - Function D6h 分類 DMA BIOS 名前 DMAパラメータリードバック 対象 PC-H98 入力 AH=D6h AL=DMAチャネル番号(0〜6) ES:BX=パラメータテーブルの先頭アドレス * 形式はINT 1Fh - Function D5h参照 出力 AH=00h,CF=0: 正常終了 40h,CF=1: 指定したDMAチャネルは使用されていない 解説 o 指定されたチャネルのDMAアドレス、転送バイト数を取得する。 関連 0000:0591h INT 1Fh - Function D7h 分類 DMA BIOS 名前 チャネルリリース 対象 PC-H98 入力 AH=D7h AL=DMAチャネル番号(0〜6) 出力 AH=00h,CF=0: 正常終了 40h,CF=1: チャネルチェックエラー 解説 o DMAチャネルの使用権を解放する。 関連 0000:0591h ■H98 拡張ROM BIOS INT 1Fh - Function D8h 分類 拡張ROM BIOS 名前 不明 Undocumented 対象 PC-H98 入力 AH=D8h CX=使用する割り込み番号 ES:BX=割り込み制御ブロックのアドレス 出力 CF=1:指定された割り込み制御ブロックがすでに使用されている CF=0:正常終了 解説 o 詳細不明 関連 INT 1Fh - Function D9h 分類 拡張ROM BIOS 名前 拡張ROM領域割り込み制御ブロック更新 (documented) 対象 PC-H98 入力 AH=D9h AL=拡張ROMのセグメントアドレスの上位8ビット CX=使用する割り込み番号 ES:BX=チェインする割り込み制御ブロックのアドレス 出力 CF=1:指定された割り込み制御ブロックがすでに使用されている CF=0:正常終了 解説 o 拡張ROM内にある割り込み制御ブロックのオフセット+04〜07h(割り込み ルーチンのチェイン)を更新する。 関連 INT 1Fh - Function DAh 分類 拡張ROM BIOS 名前 機能なし Undocumented 対象 PC-H98 入力 AH=DAh 出力 CF=0 解説 o なし 関連 INT 1Fh - Function DBh 分類 拡張ROM BIOS 名前 拡張ROM書き込み禁止・許可設定 Undocumented 対象 PC-H98 入力 AH=DBh AL=拡張ROMのセグメントアドレスの上位8ビット CX=バイト数 DL=設定値 00h: 書き込み禁止 01h: 書き込み許可 出力 AH=00h,CF=0: 正常終了 AH=40h,CF=1: ALの範囲が不正 解説 o 拡張ROM領域の書き込み禁止・許可状態を設定する。 関連 INT 1Fh - Function DC〜DEh 分類 拡張ROM BIOS 名前 機能なし Undocumented 対象 PC-H98 入力 AH=DC〜DEh 出力 CF=0 解説 o なし 関連 ■H98 電源BIOS INT 1Fh - Function DFh 分類 電源BIOS 名前 電源OFF禁止・許可設定 Undocumented 対象 PC-H98 入力 AH=DFh BH=00h :電源OFF禁止 00h以外:電源OFF許可 出力 なし 解説 o このファンクションで電源OFF禁止に設定すると、電源スイッチを押しても 電源がOFFしない。 o 電源OFF禁止状態でも、INT 1Fh - Function 98hでは電源がOFFになる。 関連 INT 1Fh - Function 98h 0000:0596h bit 1 I/O 0431h